let express = require('express')
let app = express()
let bodyParser = require('body-parser')
let Mock = require('mockjs')
let temp = require('./assets/function')
let data = require('./db/data')



let order = require('./route/ade')



//  content-type  application/json
app.use(bodyParser.json())
//  content-type application/urlform-data
app.use(bodyParser.urlencoded({
    extended: false
}))



// 那个网页可以跑
app.all('*', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    next();
});

app.use('/user',order)

//多少数据
app.get('/count', (req, res) => {
    res.json(arr.count)
})
// 分页列表
app.get('/list', (req, res) => {
    res.json(data)
})
app.get('/userlist', (req, res) => {
    let pageIndex = parseInt(req.query.pageIndex) || 1
    let pageSize = parseInt(req.query.pageSize) || 3
    let start = (pageIndex - 1) * pageSize
    let end = start + pageSize
    // req.json(arr.slice(start, end))
    res.json(data.slice(start, end))
    return

})
function temp1(data, target = {}) {
    let obj = {}
    let target_data = data.filter(r => r.id == target.id)
    for (let key in data[0]) {
        if (!target.id) {
            obj.id = Number(createid())
            obj[key] = target[key] ? target[key] : ''
        } else {
            if (String(target_data) == String([])) {
                return {message: "参数错误"}
            }
            obj[key] = target[key] ? target[key] : (target_data[0][key] ? target_data[0][key] : '')
        }
    }
    return obj
}
function createid() {
    return Math.random().toString().substr(3, 6)
}
app.get('/editor',(req,res)=>{
    let params = req.query
    res.json(JSON.parse(JSON.stringify(temp1(data,params))))
    return
})

// 添加数据(1)
// app.post('/add1', (req, res) => {
//     let num = req.query
//     let temp = {
//         id: Number(num.id) || Number(createid()),
//         name: num.name || '',
//         age: Number(num.age) || '',
//         avatar: num.avatar || '',
//         email: num.email || '',
//     }
//     for (let i in data) {
//         if (data[i].id != temp.id) {
//             data.unshift(temp)
//             res.json(data)
//             return
//         } else {
//             res.json({
//                 message: "error"
//             })
//             return
//         }
//     }
// })
// // 添加数据(2)
// app.post('/add2', (req, res) => {

//     let num = req.query
//     let temp = {
//         id: Number(createid()),
//         name: num.name || '',
//         age: Number(num.age) || '',
//         avatar: num.avatar || '',
//         email: num.email || '',
//     }
//     data.unshift(temp)
//     res.json(data)
// })

// //编辑与修改1
// app.post('/add3', (req, res) => {
//     let num = req.query
//     let temp = {
//         id: Number(num.id) || Number(createid()),
//         name: num.name || '',
//         age: Number(num.age) || '',
//         avatar: num.avatar || '',
//         city:num.city || '',
//         email:num.email || ''
        
//     }
//     // 当id有值，编辑
//     if (num.id) {
//         for (let i in data) {
//             if (data[i].id == num.id) {
//                 data.splice(i, 1, temp)
//                 res.json(data)
//                 return
//             } else {
//                 res.json({ message: "传参错误"})
//                 return
//             }
//         }

//     } else {
//         // 当id没有值，添加
//         for (let i in data) {
//             if (data[i].id != temp.id) {
//                 data.unshift(temp)
//                 res.json(data)
//                 return
//             } else {
//                 res.json({
//                     message: "error"
//                 })
//                 return
//             }
//         }
//     }

// })


// 编辑数据
app.post('/edit/:id', (req, res) => {
    let num = req.params
    if (Object.keys(num).length == 0) {
        res.json({
            message: "参数错误"
        })
        return
    }
    for (let i in data) {
        if (data[i].id == num.id) {
            data.splice(i, 1, num)
        }
    }
    res.json(data)
    return

})
// 数据详情
app.get('/info/:id', (req, res) => {
    let id = req.params.id
    let info = data.filter(r => {
        return r.id == id
    })
    res.json(info)
    return
})
// 删除
app.post('/remove', (req, res) => {
    let id = req.query.id
    for (let i in data) {
        if (data[i].id == id) {
            data.splice(i, 1)
        }
    }
    res.json(data)
    return
})


app.listen(8101, function () {
    console.log('running app')
})